package net.moonbiter.ebs;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface Input {	
	String name();
	boolean optional() default false;
	/**
	 * Descriptor that instruct how to compose
	 * the object in a form that is general
	 * and so usable to all specific translators.
	 * 
	 * Have to be a class implementing the Descriptor
	 * interface. 
	 * 
	 * The special value "Object.class" is to intend
	 * as not specified, instruct the system to use
	 * the default interpreter for that type.
	 */
	Class<?> descriptor() default Object.class;
}
